//fixed: 在处理menuData时，如果已经登录了，但是刷新之后，侧边栏会消失，通过Cookie进行持久化保存
import Cookie from "js-cookie";


//管理菜单相关的数据
export default {
    state: {
        //不同用户侧边栏展示的数据
        menuData: [],

    },
    mutations:{
        setMenuData:(state,menuData)=>{
            state.menuData = menuData;
            Cookie.set('menuData',JSON.stringify(menuData))
        },
        //动态 路由添加，虽然左侧没有显示菜单，但是通过地址栏输入路由也能访问
        addMenu(state,router){
        //    判断当前缓存中是否有数据
            if (!Cookie.get('menuData')) return ;
            const menuData=JSON.parse(Cookie.get('menuData'))
            state.menuData=menuData

            const menuArray=[]
            menuData.forEach((item)=>{
                //有子菜单
                if(item.children){
                    item.children=item.children.map((item)=>{
                        item.component=()=>import(`@/views/${item.url}`)
                        return item
                    })
                    menuArray.push(...item.children)
                }else{
                    item.component=()=>import(`@/views/${item.url}`)
                    menuArray.push(item)
                }

            })
            console.log('menuArray',menuArray)
        //    路由的动态添加
            menuArray.forEach(item=>{
                router.addRoute('main',item)
            })

        }
    }
}
